package com.oa.system.service;

import com.baomidou.mybatisplus.service.IService;
import com.joneying.common.web.response.Resp;
import com.oa.core.PageResult;
import com.oa.core.exception.DataIsEmptyException;
import com.oa.system.dto.ApprovalProcessAddDTO;
import com.oa.system.dto.MyApprovalListDTO;
import com.oa.system.entity.ApprovalProcessDefine;
import com.oa.system.vo.ApprovalProcessDefineDetails;
import com.oa.system.vo.MyApprovalFindUserIdVO;
import com.oa.system.vo.MyApprovalListVO;

import java.util.List;

public interface IApprovalProcessDefineService extends IService<ApprovalProcessDefine> {

    PageResult<MyApprovalFindUserIdVO> myApprovalFindUserId(MyApprovalListDTO myApprovalListDTO);

    PageResult<MyApprovalFindUserIdVO> findCopyRecord(MyApprovalListDTO myApprovalListDTO);

    PageResult<MyApprovalListVO> myApproval(MyApprovalListDTO myApprovalListDTO);

    Resp add(ApprovalProcessAddDTO approvalProcessAddDTO) throws DataIsEmptyException;

    List<ApprovalProcessDefine> list();

    ApprovalProcessDefineDetails details(String id);
}
